home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / newopt88.arc / READ.ME < prev   
Text File  |  1985-11-11  |  5KB  |  153 lines

  1.         C88 Optimizer program instructions, notes, etc.
  2.  
  3.             (c) 1985, Harley H. Puthuff, Jr.
  4.  
  5.     The optimizer program (OPT88) is designed to process the
  6.     assembler output of your C88 compiler.  This can be done
  7.     either during the compilation process or as a separate
  8.     stand-alone procedure.
  9.  
  10.     The optimizer program works with PC/MS-DOS versions 2.0
  11.     or later and requires a minimum of RAM.  It will process
  12.     approximately 65 assembly lines per second on a standard
  13.     8088 PC.
  14.  
  15.     What the optimizer does is to scan the generated program
  16.     for redundant instructions, unnecessary instructions, and
  17.     instructions which can be changed to use less RAM or ex-
  18.     ecute more efficiently.  For those familiar with 8086
  19.     assembly language, some of the types of optimization
  20.     performed are:
  21.  
  22.         - Elimination of redundant register loads where
  23.           the value loaded already exists in the register
  24.  
  25.         - Replacement of 'MOV reg,xxx..x' with the
  26.           instruction 'MOV reg,areg' where the xxx..x
  27.           value exists in another (areg) register
  28.  
  29.         - Elimination of a 'CMP xxx..x,0' where it
  30.           follows an arithmetic or logical instruction
  31.           referencing the same datum
  32.  
  33.         - Replacement of a 'CMP reg,0' instruction with
  34.           a 'OR reg,reg'
  35.  
  36.         - Replacement of a 'MOV reg,0' instruction with
  37.           a 'XOR reg,reg'
  38.  
  39.         - Replacement of a 'ADD xxx..x,1' instruction
  40.           with a 'INC xxx..x' instruction
  41.  
  42.         - Replacement of a 'SUB xxx..x,1' instruction
  43.           with a 'DEC xxx..x' instruction
  44.  
  45.     The degree of optimization which can be performed for a
  46.     particular application or program is, of course, dependent
  47.     on the application and style of programming.  Typically,
  48.     however, a code segment reduction of at least five percent
  49.     is a reasonable expectation, along with an increase in the
  50.     program's speed of execution.
  51.  
  52.     INSTALLATION:
  53.  
  54.     Simply copy the OPT88.EXE program to the disk directory
  55.     (or diskette) where the C88 compiler and ASM88 assembler
  56.     reside.
  57.  
  58.     STAND-ALONE OPERATION:
  59.  
  60.     The optimizer can be executed as a stand-alone process by
  61.     entering the program command at the MS-DOS prompt.  Prior
  62.     to execution, you should have generated the assembler 
  63.     input file by running the C88 compiler with the '-A'
  64.     option.  Then type the following command:
  65.  
  66.     OPT88 filename [options]
  67.  
  68.     Where:
  69.  
  70.         filename    is an input file name which may
  71.                 include a drive and path as well
  72.                 as an extension.  The optimizer
  73.                 will supply the '.A' extension if
  74.                 missing, and replace any specified
  75.                 with '.A' if present.
  76.  
  77.         [options]    are one character program options
  78.                 which may or may not be preceeded
  79.                 by a minus [-] sign and are separ-
  80.                 ated by spaces.
  81.  
  82.     PROGRAM OPTIONS:
  83.  
  84.     The optimizer program supports the following options
  85.     specifications using either upper or lower case:
  86.  
  87.     [-]S    Suppress all message output.  Normally the optim-
  88.         izer produces a start message and a completion
  89.         message which gives the number of lines processed
  90.         and the approximate number of bytes saved in the
  91.         output.
  92.  
  93.     [-]X    Diagnostic operation.  This results in more screen
  94.         information about the optimizer run.  A period is
  95.         displayed on the screen as each input statement is
  96.         read, and additional statistics are displayed along
  97.         with the ending message.
  98.  
  99.     [-]F    Create a separate output file.  Normally the optim-
  100.         izer creates a new '.A' file and deletes the old
  101.         one.  If you use the 'F' option, an output file
  102.         with the same name as the input and an extension
  103.         of '.OPT' is created and the input '.A' file is
  104.         preserved.
  105.  
  106.     [-]N    Note the optimizer modifications.  This option
  107.         results in the generation of assembly comments
  108.         in the output file which indicate what changes
  109.         were made.  These comments have no effect on
  110.         your subsequent assembly.
  111.  
  112.  
  113.     IN-LINE OPERATION:
  114.  
  115.     The optimizer may be incorporated into the compilation
  116.     procedure by renaming a couple of programs.  Normally
  117.     when the C88 compiler is executed (without the -A option)
  118.     three separate programs are used:
  119.  
  120.         C88    -pre-compiler (#define & #include expan-
  121.              sion).
  122.  
  123.         GEN    -generate assembly source code.
  124.  
  125.         ASM88    -assemble the final object code.
  126.  
  127.     In order to use the optimizer in-line, it needs to be run
  128.     between the GEN and ASM88 programs.  This can be accomplished
  129.     by selecting the directory where these programs (and OPT88)
  130.     are present and entering the following commands:
  131.  
  132.         REN ASM88.EXE ASM88X.EXE
  133.         REN OPT88.EXE ASM88.EXE
  134.  
  135.     The optimizer will then execute as part of the compilation
  136.     and will not accept any options nor produce any messages.  In
  137.     order to run the optimizer by itself, the command name is
  138.     'ASM88' and in order to run the real assembler use 'ASM88X'.
  139.  
  140.     PROBLEMS, QUESTIONS, ETC.:
  141.  
  142.     The optimizer has been thoroughly tested against a variety of
  143.     applications and should pose no problems.  If you do have a
  144.     problem with it, first try your compilation and test the output
  145.     without using the optimizer.  If the problem persists, it is
  146.     probably a source program error.  If not, technical assist-
  147.     ance is available from:
  148.  
  149.         Harley H. Puthuff, Jr.
  150.         636 Santa Alicia Drive
  151.         Rohnert Park, CA  94928
  152.         (707) 792-2138
  153.